package tr.edu.metu.is.mega.client.service;

import java.util.List;

import tr.edu.metu.is.mega.common.dto.CourseDTO;
import tr.edu.metu.is.mega.common.dto.LectureNoteDTO;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * Async interface for {@link GwtLectureNoteService}
 */
public interface GwtLectureNoteServiceAsync {

    /**
     * @see GwtLectureNoteService#createLectureNote(LectureNoteDTO)
     */
    void createLectureNote(LectureNoteDTO lectureNote, AsyncCallback<LectureNoteDTO> callback);

    /**
     * @see GwtLectureNoteService#updateLectureNote(LectureNoteDTO)
     */
    void updateLectureNote(LectureNoteDTO lectureNote, AsyncCallback<LectureNoteDTO> callback);

    /**
     * @see GwtLectureNoteService#deleteLectureNote(LectureNoteDTO)
     */
    void deleteLectureNote(LectureNoteDTO lectureNote, AsyncCallback<Void> callback);

    /**
     * @see GwtLectureNoteService#getLectureNotes(CourseDTO)
     */
    void getLectureNotes(CourseDTO course, AsyncCallback<List<LectureNoteDTO>> callback);

}
